package com.navcoo.yidaaddproapi.controller;

import cn.dev33.satoken.util.SaResult;
import com.navcoo.yidaaddproapi.pojo.dto.login.DoLoginDTO;
import com.navcoo.yidaaddproapi.pojo.dto.login.IsLoginDTO;
import com.navcoo.yidaaddproapi.pojo.dto.login.LoginOutDTO;
import com.navcoo.yidaaddproapi.service.LoginService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 登录控制器
 *
 * @author Navcoo
 * @date 2024-04-24
 */
@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/login")
public class LoginController {

    private final LoginService loginService;

    /**
     * 登录
     *
     * @param doLoginDTO 登录DTO
     * @return {@link SaResult}
     */
    @RequestMapping("/doLogin")
    public SaResult doLogin(
            @RequestBody DoLoginDTO doLoginDTO
    ) {
        log.info("doLoginDTO:{}", doLoginDTO);
        return loginService.doLogin(doLoginDTO.getUserEmail(), doLoginDTO.getPassword(), doLoginDTO.getAuthLogin());

    }

    /**
     * 登录了
     * 注销登录
     *
     * @param loginOutDTO 退出登录
     * @return {@link SaResult}
     */
    @RequestMapping("/loginOut")
    public SaResult loginOut(
            @RequestBody LoginOutDTO loginOutDTO
            ){
        log.info("loginOutDTO:{}",loginOutDTO);
        return loginService.loginOut(loginOutDTO.getToken());
    }


    @RequestMapping("/isLogin")
    public SaResult isLogin(
            @RequestBody IsLoginDTO isLoginDTO
    ){
        log.info("isLoginDTO:{}",isLoginDTO);
        return loginService.isLogin(isLoginDTO.getToken());
    }
}
